home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 524 / 524.xpi / chrome / mid.jar / content / midGetFFSearchPlugins.js < prev    next >
Text File  |  2009-10-29  |  3KB  |  100 lines

  1.  
  2.  
  3. const mid_uuidlen = 36;
  4. const mid_NS            = "http://mid.mozdev.org/dictionaries";
  5. const idstr            =  "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii";
  6.  
  7.  
  8. function loadFFsearchEngines() {
  9.     var ccss = Components.classes["@mozilla.org/browser/search-service;1"];
  10.     if (ccss) {
  11.       var searchService = Components.classes["@mozilla.org/browser/search-service;1"].getService(Components.interfaces.nsIBrowserSearchService);
  12.       var searchEngines = searchService.getVisibleEngines({ });
  13.       importEngines(searchEngines);
  14.     }
  15.     return;
  16. }
  17.  
  18.  
  19. function getSearcParams(searchEngine, searchValue)
  20. {
  21.       var searchSubmission = searchEngine.getSubmission(searchValue, null);
  22.     var postData = searchSubmission.postData ? searchSubmission.postData : null;
  23.       var searchUrl = searchSubmission.uri.spec;
  24.       var finalUrl = new String();
  25.  
  26.       if (!searchValue) 
  27.     {
  28.           var uri = Components.classes['@mozilla.org/network/standard-url;1']
  29.                       .createInstance(Components.interfaces.nsIURI);
  30.           uri.spec = searchUrl;
  31.           searchUrl = uri.host;
  32.     }
  33.     
  34.     // recommendation by Mat on AMO
  35.     for (var i = 0; i < searchUrl.length; i++) {
  36.       finalUrl += (searchUrl[i] == "+") ? "%20" : searchUrl[i];
  37.     }
  38.  
  39.     return {searchUrl: finalUrl, postData: postData};
  40. }
  41.  
  42.  
  43. function importEngines(engines) {
  44.      var newdict;
  45.      while (eng = engines.shift()) {
  46.          newdict = document.createElementNS(mid_NS,"mid:dict");
  47.          popuplateWithArguments(eng,newdict);
  48.          document.getElementById("middicos").appendChild(newdict);
  49.      }
  50. }
  51.  
  52. function  popuplateWithArguments(eng,dict){
  53.  
  54.     var searchParams =  getSearcParams(eng, "XXX");
  55.     var enginame = eng.name.substring(0,mid_uuidlen);
  56.     dict.setAttribute("label", enginame);
  57.     dict.setAttribute("engine_name", enginame);
  58.     dict.setAttribute("dictid", (enginame + idstr).substring(0,mid_uuidlen));
  59.     dict.setAttribute("home", eng.searchForm);
  60.     dict.setAttribute("url", searchParams.searchUrl);
  61.     if (!searchParams.postData) {
  62.         dict.setAttribute("method", "GET");
  63.     } else {
  64.         dict.setAttribute("method", "POST");
  65.         dict.setAttribute("inputs", searchParams.postData);
  66.     }
  67.     dict.setAttribute("checked", "false");
  68.     dict.setAttribute("js", "enabled");
  69.     dict.setAttribute("special", "yes");
  70.     if (eng.iconURI) {
  71.         dict.setAttribute("fav", eng.iconURI.spec)
  72.     } else {
  73.        dict.setAttribute("fav","chrome://mid/skin/images/mid16.ico")
  74.     }
  75.     dict.setAttribute("type", getLocaleString("searchplugins.type"));
  76.  
  77. }
  78.  
  79. function getLocaleString(lsName)
  80. {
  81.  
  82.     var  myprop =
  83.              Components.classes["@mozilla.org/intl/stringbundle;1"].
  84.              getService(Components.interfaces.nsIStringBundleService);
  85.     var mystrings = myprop.createBundle("chrome://mid/locale/searchplugins.properties");
  86.     return  mystrings.GetStringFromName(lsName);
  87.  
  88. }
  89.  
  90.  
  91.  
  92. // var sp=getSearcParams(v[0],"XXX")
  93. // sp.searchUrl
  94. // http://www.google.com/search?q=XXX&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:hu-HU:official&client=firefox-a
  95. // sp.postData
  96. // null
  97.  
  98.  
  99. //  http://www.koders.com/javascript/fidE9B756690EE8433D8880C15D6F684F019CFF82ED.aspx?s=nsIBrowserSearchService#L231
  100.